Scyther changelog
===============================

Scyther 1.1.2
-------------------------------

Minor:

 * Updated installation instructions.
 * Updated 'ffgg' protocol generator for new conventions.
 * Windows users recently had to manually set the Graphviz path. Added a
 hack to avoid this inconvenience in most (but not all) cases.
 * Minor manual update.

Bug fixes:

 * [Bugfix] Reverted use of shlex. This breaks the "abort backend
 thread" functionality again, but it was causing too much trouble on
 Windows.

Scyther 1.1.1
-------------------------------

This is mostly a bugfix release.

New features:

 * [Language] Weakagree and Alive claims now also allow for an optional role
 parameter, which can be useful for protocols with more than two roles.
 * [Misc] Added Python script to dump attack outputs for large sets of files.
 * [Gui] Canceling verification now also kills back-end thread.

Regression fixes:

 * [Regression-fix] Reintroduced option for specifying alternative PKI.

Bug fixes:

 * [Bugfix] Fixed rare bug in some cases where hashes were used as symmetric keys.
 * [Bugfix] Invoking Scyther scripts from non-standard directories or using symlinks should work consistently now.
 * [Bugfix] Improving compatibility with recent versions of Graphviz (>2.26)

Scyther 1.1
-------------------------------

Major new features:

 * [Language] Added support for `macro Term1 = Term2;` definitions, which greatly
 simplifies many specifications.
 * [Language] Added support for `match(T1,T2);` events in roles, which
 can be used for e.g. a straightforward modeling of delayed decryption.
 * [Language] Added support for `not match(T1,T2);` events in roles.
 This can be useful for, e.g., modeling protocol restrictions (such as
 `A != B`).
 * [Language] Added support for `option "COMMANDLINE_OPTIONS";` in
 specifications. This provides full access to the command-line options
 of the Scyther backend to the protocol specifications. An example of
 its use is `option "--one-role-per-agent";`.
 * [Mac OS X] Dropped support for PPC in Scyther distributions, only
 supporting Intel for now. Note that installing from source may still
 work fine with a minor tweak to the build script.

Additional protocol models:

See <http://www.cs.ox.ac.uk/people/cas.cremers/tools/protocols.html> for a
more high-level overview of selected protocol models.

 * IEEE 802.16e/WIMAX: PKMv2rsa and variants
 * IKEv1 and IKEv2 protocol suites

Other new features:

 * `SCYTHERCACHEDIR` environment variable can be set to override the
 internal cache path.
 * [Backend] The command-line tool now supports the option
 `--one-role-per-agent`. This disallows agents from performing more than
 one role in a single trace. This effectively partitions the agents into
 role sets, i.e., each role can only be performed by agents from one of
 these sets.
 * [Documentation] Added the first incomplete version of the new manual.
 
There are also various minor bugfixes and installation improvements.

Scyther 1.0
-------------------------------

Major new features:

 * [Language] Support for weak agreement
 * [Language] Support for non-injective data agreement through `Commit`
 and `Running` signals.

Bugfixes:

 * Python 2.5 has integrated (c)elementtree into the core.
   Unfortunaly, this broke our previous import attempts. This has now
   been fixed.

Scyther 1.0-beta7.1
-------------------------------

Bugfixes:

 * Windows Vista fix broke Windows XP support.

Scyther 1.0-beta7
-------------------------------

Bugfixes:

 * Windows Vista causes a number of problems. The biggest problem
   is now fixed, which is the bad implementation of the tmpfile() C
   function, causing no attack output, for which there is a
   workaround now.

Scyther 1.0-beta6 
-------------------------------
   
Major new features:

 * [Gui] Added Mac support (added universal binary)
 * [Gui] Switched to Scintilla editor component, providing undo
   and line numbering, and highlighting of error lines.

Other new features:

 * [Backend] Scyther now detects when a recv event cannot match
   with a send event. This significantly helps in reducing errors
   in the protocol descriptions.
 * [Language] Added claim parameter for Reachable claim;
   Reachable,R means that role R should be trusted (as well as the
   actor), but not any other role. This can be useful for showing
   stronger authentication properties of protocols with more than
   two parties.
 * [Backend] Added '--max-of-role=N' switch (to narrow scenarios)
 * [Backend] Added '--scan-claims' switch (allows for retrieving
   a list of claims)
 * [Scripting] Added 'verifyOne' and 'scanClaims' methods to
   Scyther object, to help with singular claim testing.

   Bugfixes:

 * [Scripting] Fixed bug in python interface backend (e.g. with mpa.py)

Scyther 1.0-beta5 
-------------------------------

 * Change of switch semantics.  '--max-attacks=N' now defines the
     maximum number of attacks per claim.  Previously this was a
     global maximum for all claims combined.
 * Improved attack graph output.
 * added switch '--errors=FILE' to redirect standard error output
     to a file.
 * Rewrote parts of the gui code for improved stability.

Scyther 1.0-beta4 
-------------------------------

 * (Changelog starts after the release of Scyther 1.0-beta4)
